package com.quick.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.quick.base.Page;
import com.quick.base.Search;
import com.quick.sys.domain.dto.SysDeptDTO;
import com.quick.sys.domain.pojo.SysDept;
import com.quick.sys.domain.search.SysDeptSearch;
import com.quick.sys.domain.vo.SysDeptVo;
import com.quick.sys.domain.vo.SysPostVo;
import com.quick.util.QuickTool;

import java.util.List;
import java.util.Map;

public interface ISysDeptService {
	
    default void queryWrapper(QueryWrapper<SysDept> queryWrapper, SysDeptSearch search) {
    	if(QuickTool.notNull(search.getKey())) {
    		queryWrapper.lambda().like(SysDept::getName, search.getKey());
    	}
	}
    Page<SysDeptVo> search(Search<SysDeptSearch> search);

    /**
     * 根据部门id集合查询部门
     * @param deptIds
     * @return
     */
    List<SysDeptVo> deptByIds(List<Integer> deptIds);

    /**
     * 根据部门id集合查询部门
     * @param deptIds
     * @return Map<Integer,SysDeptVo>
     */
    Map<Integer,SysDeptVo> loadDept(List<Integer> deptIds);
	/**
	 * 新增部门
	 * @param role
	 * @return
	 */
    Boolean saveSysDept(SysDeptDTO role);
    /**
     * 查询部门
     * @param id
     * @return
     */
	SysPostVo queryById(Long id);
	/**
	 * 删除部门
	 * @param id
	 * @return
	 */
	Boolean delById(Long id);
	/**
	 * 批量删除
	 * @param ids
	 * @return
	 */
	Boolean batchDel(List<Long> ids);


}
